package com.hospital.register.vo.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
@ApiModel(description = "就诊人信息")
public class PatientQueryVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "证件类型")
    private String certificatesType;

    @ApiModelProperty(value = "证件编号")
    private String certificatesNo;

    @ApiModelProperty(value = "性别")
    private Byte sex;

    @ApiModelProperty(value = "出生年月")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthdate;

    @ApiModelProperty(value = "手机")
    private String phone;

    @ApiModelProperty(value = "是否结婚")
    private Byte isMarry;

    @ApiModelProperty(value = "省code")
    private String provinceCode;

    @ApiModelProperty(value = "市code")
    private String cityCode;

    @ApiModelProperty(value = "区code")
    private String districtCode;

    @ApiModelProperty(value = "详情地址")
    private String address;

    @ApiModelProperty(value = "联系人姓名")
    private String contactsName;

    @ApiModelProperty(value = "联系人证件类型")
    private String contactsCertificatesType;

    @ApiModelProperty(value = "联系人证件号")
    private String contactsCertificatesNo;

    @ApiModelProperty(value = "联系人手机")
    private String contactsPhone;

    @ApiModelProperty(value = "是否有医保")
    private Byte isInsure;

    @ApiModelProperty(value = "就诊卡")
    private String cardNo;

    @ApiModelProperty(value = "状态（0：默认 1：已认证）")
    private Byte status;

    @ApiModelProperty(value = "其他参数")
    private OtherInfo param;

    @ApiModel("有关就诊人的更多信息")
    @Data
    public static class OtherInfo implements Serializable {

        @ApiModelProperty("就诊人证件类型的名称")
        private String certificatesTypeString;

        @ApiModelProperty("联系人证件类型的名称")
        private String contactsCertificatesTypeString;

        @ApiModelProperty("就诊人所在省的名称")
        private String provinceString;

        @ApiModelProperty("就诊人所在市的名称")
        private String cityString;

        @ApiModelProperty("就诊人所在区的名称")
        private String districtString;

        @ApiModelProperty("就诊人的详细地址")
        private String fullAddress;

    }

}

